package com.lzh.java1;
/*
 * 	接口的使用
 * 1.接口使用上也满足多态性
 * 2.接口实际上就是定义了一种规范
 * 3.开发中，体会面向接口编程
 */
public class USBTest {
	public static void main(String[] args) {
		
		Computer com = new Computer();
		//1.创建了接口的非匿名实现类的非匿名对象
		Flash flash = new Flash();
		com.transferData(flash);
		
		//2.创建了接口的非匿名实现类的匿名对象
		com.transferData(new Printer());
		
		//3.创建了接口的匿名实现类的非匿名对象
		USB phone = new USB() {
				
			@Override
			public void start() {
				System.out.println("手机开始工作");
			}

			@Override
			public void stop() {
				System.out.println("手机结束工作");
			}
		};
		com.transferData(phone);
		
		//4.创建了接口的匿名实现类的匿名对象
		com.transferData(new USB() {

			@Override
			public void start() {
				System.out.println("mp3开始工作");
			}

			@Override
			public void stop() {
				System.out.println("mp3结束工作");
			}
			
		});
	}
}
class Computer{
	
	public void transferData(USB usb) {
		usb.start();
		System.out.println("具体的传输数据的细节");
		usb.stop();
	}
}
interface USB{
	//常量：定义了长、宽、最大最小的传输速率
	
	void start();
	
	void stop();
}
class Flash implements USB{

	@Override
	public void start() {
			System.out.println("U盘开启工作");
	}

	@Override
	public void stop() {
		System.out.println("U盘结束工作");
	}
	
}
class Printer implements USB{

	@Override
	public void start() {
		System.out.println("打印机启动");
	}

	@Override
	public void stop() {
		System.out.println("打印机关闭");
	}
	
}